import java.io.*;
import java.util.*;
public class HJ19{//简单错误记录
    public static void main(String[] args) throws IOException {
        // 使用 BufferedReader 读取输入
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

        // 使用 LinkedHashMap 存储文件名和行号的组合及其出现次数
        Map<String, Integer> map = new LinkedHashMap();

        String tstr = null;
        // 逐行读取输入，直到输入为空或结束
        while ((tstr = bf.readLine()) != null && !tstr.equals("")) {
            // 按空格分割输入行，得到文件名和行号
            String[] str = tstr.split("\\s+");

            // 提取文件名部分（去掉路径）,lastIndexOf("\\")找到最后一个反斜杠的位置
            String fname = str[0].substring(str[0].lastIndexOf("\\") + 1);

            // 如果文件名长度超过16，只取最后16个字符
            fname = fname.substring(Math.max(fname.length() - 16, 0)) + " " + str[1];

            // 统计文件名和行号的组合的出现次数
            Integer tmp = map.get(fname);
            if (tmp == null)
                map.put(fname, 1); // 如果不存在，初始化为1
            else
                map.put(fname, tmp + 1); // 如果存在，次数加1
        }

        // 输出最后8条记录
        int count = 0;
        for (Map.Entry<String, Integer> it : map.entrySet()) {
            if (map.size() - count <= 8)
                System.out.println(it.getKey() + " " + it.getValue());
            count++;
        }
    }
}